<?php

/*
 * model utilizzato per tutte le operazioni sul database
 * nelle tabelle lib
 * 
 */

class Lib_db {

    /**
     * 
     * funzione di ricerca per l'instant search
     *
     * @param type $q
     * @return type 
     */
    public static function search($q, $table) {

        $new_results = array();

        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";
            $db = Db_Db::conn();

            //$q = mysql_real_escape_string($q, $db);
            $statement = "SELECT $table.descrizione, $table.id_$table FROM $table WHERE $table.descrizione LIKE '%{$q}%'";

            $results = $db->fetchAll($statement);

            foreach ($results as $result) {
                $result['descrizione'] = htmlspecialchars_decode(html_entity_decode($result['descrizione']));
                $new_results[] = $result;
            }

            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }

        return $new_results;
    }

    /**
     * Questo metodo data la categoria restituisce tutte le norme
     * 
     * @param type $categoria la descrizione della categoria 
     */
    public static function getNormeByCategoria($categoria) {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";
            $db = Db_Db::conn();

            $query = "SELECT * FROM lib_norma WHERE categoria='" . addslashes($categoria) . "'";
            $ret = $db->fetchAll($query);

            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }

        return $ret;
    }

    /**
     * questa funzione ritorna i nomi di tutte le nazioni
     * 
     * @return array 
     */
    public static function getLibNazioni() {

        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";

            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $statement = "SELECT * FROM lib_nazione";
            $nazioni = $db->fetchAll($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }

        $new_nazioni = array();
        foreach ($nazioni as $nazione) {
            $nazione['descrizione'] = htmlspecialchars_decode(html_entity_decode($nazione['descrizione']));
            $new_nazioni[] = $nazione;
        }

        return $new_nazioni;
    }

    /**
     *
     * funzione che ritorna l'elenco dei comuni
     * 
     * @return array 
     */
    public static function getLibComuni() {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";

            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $statement = "SELECT * FROM lib_comune";
            $comuni = $db->fetchAll($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }


        $new_comuni = array();
        foreach ($comuni as $comune) {
            $comune['descrizione'] = htmlspecialchars_decode(html_entity_decode($comune['descrizione']));
            $new_comuni[] = $comune;
        }

        return $new_comuni;
    }

    public static function getLibNorma() {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";

            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $statement = "SELECT * FROM lib_norma";
            $norme = $db->fetchAll($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }


        $new_norme = array();
        foreach ($norme as $norma) {
            $norma['categoria'] = htmlspecialchars_decode(html_entity_decode($norma['categoria']));
            $norma['norma_violata'] = htmlspecialchars_decode(html_entity_decode($norma['norma_violata']));
            $norma['norma_sazionamento'] = htmlspecialchars_decode(html_entity_decode($norma['norma_sazionamento']));
            $norma['descrizione'] = htmlspecialchars_decode(html_entity_decode($norma['descrizione']));
            $new_norme[] = $norma;
        }

        return $new_norme;
    }

    public static function getLibCentriCosto() {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";

            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $statement = "SELECT * FROM lib_centro_costo";
            $centri_costo = $db->fetchAll($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }


        $new_centri_costo = array();
        foreach ($centri_costo as $centro_costo) {
            $centro_costo['denominazione'] = htmlspecialchars_decode(html_entity_decode($centro_costo['denominazione']));
            $new_centri_costo[] = $centro_costo;
        }

        return $new_centri_costo;
    }

    public static function getLibCentroCosto($id_lib_centro_costo) {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";
            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $id_lib_centro_costo = intval($id_lib_centro_costo);
            $statement = "SELECT * FROM lib_centro_costo WHERE id_lib_centro_costo=$id_lib_centro_costo";
            $centro_costo = $db->fetchRow($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }

        $centro_costo['centro_costo'] = htmlspecialchars_decode(html_entity_decode($centro_costo['centro_costo']));
        return $centro_costo;
    }

    public static function getLibUnitaLocali() {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";

            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $statement = "SELECT * FROM unita_locale";
            $unita_locali = $db->fetchAll($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }


        $new_unita_locali = array();
        foreach ($unita_locali as $unita_locale) {
            $unita_locale['ragione_sociale'] = htmlspecialchars_decode(html_entity_decode($unita_locale['ragione_sociale']));
            $new_unita_locali[] = $unita_locale;
        }

        return $new_unita_locali;
    }

    public static function getComune($id_lib_comune) {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";
            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $statement = "SELECT * FROM lib_comune WHERE id_lib_comune=$id_lib_comune";
            $comune = $db->fetchRow($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }

        $comune['descrizione'] = htmlspecialchars_decode(html_entity_decode($comune['descrizione']));
        return $comune;
    }

    public static function getTipoProcesso($id_lib_tipo_processo) {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";
            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $statement = "SELECT * FROM lib_tipo_processo_sanzionatorio WHERE id_lib_tipo_processo_sanzionatorio=$id_lib_tipo_processo";
            $processo = $db->fetchRow($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }

        $processo['descrizione'] = htmlspecialchars_decode(html_entity_decode($processo['descrizione']));
        return $processo;
    }

    public static function getNorma($id_lib_norma) {
        try {
            require_once APPLICATION_PATH . "/models/Db/Db_Db.php";
            $db = Db_Db::conn();

            //set utf8
            $db->query("SET NAMES utf8");

            $statement = "SELECT * FROM lib_norma WHERE id_lib_norma=$id_lib_norma";
            $norma = $db->fetchRow($statement);
            $db->closeConnection();
        } catch (Zend_Db_Exception $e) {
            echo $e->getMessage();
        }

        $norma['categoria'] = htmlspecialchars_decode(html_entity_decode($norma['categoria']));
        $norma['norma_violata'] = htmlspecialchars_decode(html_entity_decode($norma['norma_violata']));
        $norma['norma_sazionamento'] = htmlspecialchars_decode(html_entity_decode($norma['norma_sazionamento']));
        $norma['descrizione'] = htmlspecialchars_decode(html_entity_decode($norma['descrizione']));

        return $norma;
    }

}

?>
